from bot.enterprise_wechat_gpt.util.llm_agent_aio import *
from bot.enterprise_wechat_gpt.util.id_distributor import distribute


class SplitUtterAgent(LLMAgent):
    prompt_template = """
任务：把下面一段说的话按不同意群拆分，不同意群的句子中间用两个换行符拼接。
注意事项：
1.最多拆分成三句话
2.去除末尾的结束语

例子：
```
输入：
哎呀，抱歉之前没了解到您的情况~请问您是说金条账户暂时无法使用吗~如果您有财务需求，我们可以为您推荐申请京东联名信用卡或其他信贷产品~同时，您可以关注金条账户的变化，一旦额度恢复，我们会第一时间通知您哦~ 是不是有其他方面的需求我可以帮您解决呢
输出：
哎呀，抱歉之前没了解到您的情况~请问您是说金条账户暂时无法使用吗~

如果您有财务需求，我们可以为您推荐申请京东联名信用卡或其他信贷产品~

同时，您可以关注金条账户的变化，一旦额度恢复，我们会第一时间通知您哦~ 
```
输入：{utter}
输出：
"""

    def __init__(self, utter_):  # conversation_history是整合同一角色的连续多行对话 为一行后，得到的对话历史list
        self.prompt = self.prompt_template.format(utter=utter_)
        super().__init__(self.prompt)


async def get_split_utter(ut):
    user_id = local_data.user_id
    split_utter = SplitUtterAgent(ut)
    # 100%比例请求azure
    if distribute(user_id, r=10):
        res = await split_utter.achat_with_azure(agent_name='Agent4')
    else:
        res = await split_utter.chat_with_gpt(temperature=0, agent_name='Agent4', model='gpt-3.5-turbo-0613', timeout=30)
    logging.info(f"userId:[{user_id}] Agent4 Split_Utter: {res}")
    return res

if __name__ == '__main__':
    utter = "金条的利率均是按照金融监管机构的要求来执行的，每个用户的利率都是系统根据您账户情况综合评估动态调整的专属利率呢！小鑫建议您多使用、保持良好的借还款习惯，就有可能获得利率调整的机会哟～因为您目前不是正好有用款需要吗，刚好可以参与我们的微信特邀活动的，您通过链接【http://3.cn/10-bcNHyX】借款成功后，我帮您提交下次优惠活动期间的使用优惠，您下次借款可以使用，保持较好的履约次数，可优先获得额度和利息调整的~"
    loops = asyncio.get_event_loop()
    results = loops.run_until_complete(get_split_utter(utter))


